home *** CD-ROM | disk | FTP | other *** search
/ IRIX Base Documentation 2001 May / SGI IRIX Base Documentation 2001 May.iso / usr / share / catman / p_man / cat3 / c++ / istream.z / istream
Encoding:
Text File  |  1998-10-30  |  39.1 KB  |  463 lines

  1.  
  2.  
  3.  
  4. IIIISSSSTTTTRRRREEEEAAAAMMMM((((3333CCCC++++++++))))                                                    IIIISSSSTTTTRRRREEEEAAAAMMMM((((3333CCCC++++++++))))
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      istream - formatted and unformatted input
  10.  
  11. SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
  12.      _####_iiii_nnnn_cccc_llll_uuuu_dddd_eeee _<<<<_iiii_oooo_ssss_tttt_rrrr_eeee_aaaa_mmmm_...._hhhh_>>>>
  13.  
  14.      _tttt_yyyy_pppp_eeee_dddd_eeee_ffff _llll_oooo_nnnn_gggg _ssss_tttt_rrrr_eeee_aaaa_mmmm_oooo_ffff_ffff_,,,, _ssss_tttt_rrrr_eeee_aaaa_mmmm_pppp_oooo_ssss_;;;;
  15.      _cccc_llll_aaaa_ssss_ssss _iiii_oooo_ssss _{{{{
  16.      _pppp_uuuu_bbbb_llll_iiii_cccc_::::
  17.                _eeee_nnnn_uuuu_mmmm      _ssss_eeee_eeee_kkkk______dddd_iiii_rrrr _{{{{ _bbbb_eeee_gggg_,,,, _cccc_uuuu_rrrr_,,,, _eeee_nnnn_dddd _}}}}_;;;;
  18.                _eeee_nnnn_uuuu_mmmm      _oooo_pppp_eeee_nnnn______mmmm_oooo_dddd_eeee _{{{{ _iiii_nnnn_,,,, _oooo_uuuu_tttt_,,,, _aaaa_tttt_eeee_,,,, _aaaa_pppp_pppp_,,,, _tttt_rrrr_uuuu_nnnn_cccc_,,,, _nnnn_oooo_cccc_rrrr_eeee_aaaa_tttt_eeee_,,,, _nnnn_oooo_rrrr_eeee_pppp_llll_aaaa_cccc_eeee _}}}} _;;;;
  19.                _////_**** _ffff_llll_aaaa_gggg_ssss _ffff_oooo_rrrr _cccc_oooo_nnnn_tttt_rrrr_oooo_llll_llll_iiii_nnnn_gggg _ffff_oooo_rrrr_mmmm_aaaa_tttt _****_////
  20.                _eeee_nnnn_uuuu_mmmm      _{{{{ _ssss_kkkk_iiii_pppp_wwww_ssss_====_0000_1111_,,,,
  21.                            _llll_eeee_ffff_tttt_====_0000_2222_,,,,  _rrrr_iiii_gggg_hhhh_tttt_====_0000_4444_,,,, _iiii_nnnn_tttt_eeee_rrrr_nnnn_aaaa_llll_====_0000_1111_0000_,,,,
  22.                            _dddd_eeee_cccc_====_0000_2222_0000_,,,, _oooo_cccc_tttt_====_0000_4444_0000_,,,, _hhhh_eeee_xxxx_====_0000_1111_0000_0000_,,,,
  23.                            _ssss_hhhh_oooo_wwww_bbbb_aaaa_ssss_eeee_====_0000_2222_0000_0000_,,,, _ssss_hhhh_oooo_wwww_pppp_oooo_iiii_nnnn_tttt_====_0000_4444_0000_0000_,,,, _uuuu_pppp_pppp_eeee_rrrr_cccc_aaaa_ssss_eeee_====_0000_1111_0000_0000_0000_,,,, _ssss_hhhh_oooo_wwww_pppp_oooo_ssss_====_0000_2222_0000_0000_0000_,,,,
  24.                            _ssss_cccc_iiii_eeee_nnnn_tttt_iiii_ffff_iiii_cccc_====_0000_4444_0000_0000_0000_,,,, _ffff_iiii_xxxx_eeee_dddd_====_0000_1111_0000_0000_0000_0000_,,,,
  25.                            _uuuu_nnnn_iiii_tttt_bbbb_uuuu_ffff_====_0000_2222_0000_0000_0000_0000_,,,, _ssss_tttt_dddd_iiii_oooo_====_0000_4444_0000_0000_0000_0000 _}}}}_;;;;
  26.                _////_//// _aaaa_nnnn_dddd _llll_oooo_tttt_ssss _oooo_ffff _oooo_tttt_hhhh_eeee_rrrr _ssss_tttt_uuuu_ffff_ffff_,,,, _ssss_eeee_eeee _iiii_oooo_ssss_((((_3333_CCCC_++++_++++_)))) _...._...._....
  27.      _}}}} _;;;;
  28.  
  29.      _cccc_llll_aaaa_ssss_ssss _iiii_ssss_tttt_rrrr_eeee_aaaa_mmmm _:::: _pppp_uuuu_bbbb_llll_iiii_cccc _iiii_oooo_ssss _{{{{
  30.      _pppp_uuuu_bbbb_llll_iiii_cccc_::::
  31.                          _iiii_ssss_tttt_rrrr_eeee_aaaa_mmmm_((((_ssss_tttt_rrrr_eeee_aaaa_mmmm_bbbb_uuuu_ffff_****_))))_;;;;
  32.                _iiii_nnnn_tttt       _gggg_cccc_oooo_uuuu_nnnn_tttt_((((_))))_;;;;
  33.                _iiii_ssss_tttt_rrrr_eeee_aaaa_mmmm_&&&&  _gggg_eeee_tttt_((((_cccc_hhhh_aaaa_rrrr_**** _pppp_tttt_rrrr_,,,, _iiii_nnnn_tttt _llll_eeee_nnnn_,,,, _cccc_hhhh_aaaa_rrrr _dddd_eeee_llll_iiii_mmmm_====_''''_\\\\_nnnn_''''_))))_;;;;
  34.                _iiii_ssss_tttt_rrrr_eeee_aaaa_mmmm_&&&&  _gggg_eeee_tttt_((((_uuuu_nnnn_ssss_iiii_gggg_nnnn_eeee_dddd _cccc_hhhh_aaaa_rrrr_**** _pppp_tttt_rrrr_,,,,_iiii_nnnn_tttt _llll_eeee_nnnn_,,,, _cccc_hhhh_aaaa_rrrr _dddd_eeee_llll_iiii_mmmm_====_''''_\\\\_nnnn_''''_))))_;;;;
  35.  
  36.                _iiii_ssss_tttt_rrrr_eeee_aaaa_mmmm_&&&&  _gggg_eeee_tttt_((((_uuuu_nnnn_ssss_iiii_gggg_nnnn_eeee_dddd _cccc_hhhh_aaaa_rrrr_&&&&_))))_;;;;
  37.                _iiii_ssss_tttt_rrrr_eeee_aaaa_mmmm_&&&&  _gggg_eeee_tttt_((((_cccc_hhhh_aaaa_rrrr_&&&&_))))_;;;;
  38.                _iiii_ssss_tttt_rrrr_eeee_aaaa_mmmm_&&&&  _gggg_eeee_tttt_((((_ssss_tttt_rrrr_eeee_aaaa_mmmm_bbbb_uuuu_ffff_&&&& _ssss_bbbb_,,,, _cccc_hhhh_aaaa_rrrr _dddd_eeee_llll_iiii_mmmm _====_''''_\\\\_nnnn_''''_))))_;;;;
  39.                _iiii_nnnn_tttt       _gggg_eeee_tttt_((((_))))_;;;;
  40.                _iiii_ssss_tttt_rrrr_eeee_aaaa_mmmm_&&&&  _gggg_eeee_tttt_llll_iiii_nnnn_eeee_((((_cccc_hhhh_aaaa_rrrr_**** _pppp_tttt_rrrr_,,,, _iiii_nnnn_tttt _llll_eeee_nnnn_,,,, _cccc_hhhh_aaaa_rrrr _dddd_eeee_llll_iiii_mmmm_====_''''_\\\\_nnnn_''''_))))_;;;;
  41.                _iiii_ssss_tttt_rrrr_eeee_aaaa_mmmm_&&&&  _gggg_eeee_tttt_llll_iiii_nnnn_eeee_((((_uuuu_nnnn_ssss_iiii_gggg_nnnn_eeee_dddd _cccc_hhhh_aaaa_rrrr_**** _pppp_tttt_rrrr_,,,, _iiii_nnnn_tttt _llll_eeee_nnnn_,,,, _cccc_hhhh_aaaa_rrrr _dddd_eeee_llll_iiii_mmmm_====_''''_\\\\_nnnn_''''_))))_;;;;
  42.                _iiii_ssss_tttt_rrrr_eeee_aaaa_mmmm_&&&&  _iiii_gggg_nnnn_oooo_rrrr_eeee_((((_iiii_nnnn_tttt _llll_eeee_nnnn_====_1111_,,,,_iiii_nnnn_tttt _dddd_eeee_llll_iiii_mmmm_====_EEEE_OOOO_FFFF_))))_;;;;
  43.                _iiii_nnnn_tttt       _iiii_pppp_ffff_xxxx_((((_iiii_nnnn_tttt _nnnn_eeee_eeee_dddd_====_0000_))))_;;;;
  44.                _iiii_nnnn_tttt       _pppp_eeee_eeee_kkkk_((((_))))_;;;;
  45.                _iiii_ssss_tttt_rrrr_eeee_aaaa_mmmm_&&&&  _pppp_uuuu_tttt_bbbb_aaaa_cccc_kkkk_((((_cccc_hhhh_aaaa_rrrr_))))_;;;;
  46.                _iiii_ssss_tttt_rrrr_eeee_aaaa_mmmm_&&&&  _rrrr_eeee_aaaa_dddd_((((_cccc_hhhh_aaaa_rrrr_**** _ssss_,,,, _iiii_nnnn_tttt _nnnn_))))_;;;;
  47.                _iiii_ssss_tttt_rrrr_eeee_aaaa_mmmm_&&&&  _rrrr_eeee_aaaa_dddd_((((_uuuu_nnnn_ssss_iiii_gggg_nnnn_eeee_dddd _cccc_hhhh_aaaa_rrrr_**** _ssss_,,,, _iiii_nnnn_tttt _nnnn_))))_;;;;
  48.                _iiii_ssss_tttt_rrrr_eeee_aaaa_mmmm_&&&&  _ssss_eeee_eeee_kkkk_gggg_((((_ssss_tttt_rrrr_eeee_aaaa_mmmm_pppp_oooo_ssss_))))_;;;;
  49.                _iiii_ssss_tttt_rrrr_eeee_aaaa_mmmm_&&&&  _ssss_eeee_eeee_kkkk_gggg_((((_ssss_tttt_rrrr_eeee_aaaa_mmmm_oooo_ffff_ffff_,,,, _ssss_eeee_eeee_kkkk______dddd_iiii_rrrr_))))_;;;;
  50.                _iiii_nnnn_tttt       _ssss_yyyy_nnnn_cccc_((((_))))_;;;;
  51.                _ssss_tttt_rrrr_eeee_aaaa_mmmm_pppp_oooo_ssss _tttt_eeee_llll_llll_gggg_((((_))))_;;;;
  52.  
  53.                _iiii_ssss_tttt_rrrr_eeee_aaaa_mmmm_&&&&  _oooo_pppp_eeee_rrrr_aaaa_tttt_oooo_rrrr_>>>>_>>>>_((((_cccc_hhhh_aaaa_rrrr_****_))))_;;;;
  54.                _iiii_ssss_tttt_rrrr_eeee_aaaa_mmmm_&&&&  _oooo_pppp_eeee_rrrr_aaaa_tttt_oooo_rrrr_>>>>_>>>>_((((_cccc_hhhh_aaaa_rrrr_&&&&_))))_;;;;
  55.                _iiii_ssss_tttt_rrrr_eeee_aaaa_mmmm_&&&&  _oooo_pppp_eeee_rrrr_aaaa_tttt_oooo_rrrr_>>>>_>>>>_((((_ssss_hhhh_oooo_rrrr_tttt_&&&&_))))_;;;;
  56.                _iiii_ssss_tttt_rrrr_eeee_aaaa_mmmm_&&&&  _oooo_pppp_eeee_rrrr_aaaa_tttt_oooo_rrrr_>>>>_>>>>_((((_iiii_nnnn_tttt_&&&&_))))_;;;;
  57.                _iiii_ssss_tttt_rrrr_eeee_aaaa_mmmm_&&&&  _oooo_pppp_eeee_rrrr_aaaa_tttt_oooo_rrrr_>>>>_>>>>_((((_llll_oooo_nnnn_gggg_&&&&_))))_;;;;
  58.                _iiii_ssss_tttt_rrrr_eeee_aaaa_mmmm_&&&&  _oooo_pppp_eeee_rrrr_aaaa_tttt_oooo_rrrr_>>>>_>>>>_((((_ffff_llll_oooo_aaaa_tttt_&&&&_))))_;;;;
  59.                _iiii_ssss_tttt_rrrr_eeee_aaaa_mmmm_&&&&  _oooo_pppp_eeee_rrrr_aaaa_tttt_oooo_rrrr_>>>>_>>>>_((((_dddd_oooo_uuuu_bbbb_llll_eeee_&&&&_))))_;;;;
  60.  
  61.  
  62.  
  63.                                                                         PPPPaaaaggggeeee 1111
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. IIIISSSSTTTTRRRREEEEAAAAMMMM((((3333CCCC++++++++))))                                                    IIIISSSSTTTTRRRREEEEAAAAMMMM((((3333CCCC++++++++))))
  71.  
  72.  
  73.  
  74.               _iiii_ssss_tttt_rrrr_eeee_aaaa_mmmm_&&&&   _oooo_pppp_eeee_rrrr_aaaa_tttt_oooo_rrrr_>>>>_>>>>_((((_uuuu_nnnn_ssss_iiii_gggg_nnnn_eeee_dddd _cccc_hhhh_aaaa_rrrr_****_))))_;;;;
  75.                _iiii_ssss_tttt_rrrr_eeee_aaaa_mmmm_&&&&  _oooo_pppp_eeee_rrrr_aaaa_tttt_oooo_rrrr_>>>>_>>>>_((((_uuuu_nnnn_ssss_iiii_gggg_nnnn_eeee_dddd _cccc_hhhh_aaaa_rrrr_&&&&_))))_;;;;
  76.                _iiii_ssss_tttt_rrrr_eeee_aaaa_mmmm_&&&&  _oooo_pppp_eeee_rrrr_aaaa_tttt_oooo_rrrr_>>>>_>>>>_((((_uuuu_nnnn_ssss_iiii_gggg_nnnn_eeee_dddd _ssss_hhhh_oooo_rrrr_tttt_&&&&_))))_;;;;
  77.                _iiii_ssss_tttt_rrrr_eeee_aaaa_mmmm_&&&&  _oooo_pppp_eeee_rrrr_aaaa_tttt_oooo_rrrr_>>>>_>>>>_((((_uuuu_nnnn_ssss_iiii_gggg_nnnn_eeee_dddd _iiii_nnnn_tttt_&&&&_))))_;;;;
  78.                _iiii_ssss_tttt_rrrr_eeee_aaaa_mmmm_&&&&  _oooo_pppp_eeee_rrrr_aaaa_tttt_oooo_rrrr_>>>>_>>>>_((((_uuuu_nnnn_ssss_iiii_gggg_nnnn_eeee_dddd _llll_oooo_nnnn_gggg_&&&&_))))_;;;;
  79.                _iiii_ssss_tttt_rrrr_eeee_aaaa_mmmm_&&&&  _oooo_pppp_eeee_rrrr_aaaa_tttt_oooo_rrrr_>>>>_>>>>_((((_ssss_tttt_rrrr_eeee_aaaa_mmmm_bbbb_uuuu_ffff_****_))))_;;;;
  80.                _iiii_ssss_tttt_rrrr_eeee_aaaa_mmmm_&&&&  _oooo_pppp_eeee_rrrr_aaaa_tttt_oooo_rrrr_>>>>_>>>>_((((_iiii_ssss_tttt_rrrr_eeee_aaaa_mmmm_&&&& _((((_****_))))_((((_iiii_ssss_tttt_rrrr_eeee_aaaa_mmmm_&&&&_))))_))))_;;;;
  81.                _iiii_ssss_tttt_rrrr_eeee_aaaa_mmmm_&&&&  _oooo_pppp_eeee_rrrr_aaaa_tttt_oooo_rrrr_>>>>_>>>>_((((_iiii_oooo_ssss_&&&& _((((_****_))))_((((_iiii_oooo_ssss_&&&&_))))_))))_;;;;
  82.      _}}}}_;;;;
  83.  
  84.      _cccc_llll_aaaa_ssss_ssss _iiii_ssss_tttt_rrrr_eeee_aaaa_mmmm______wwww_iiii_tttt_hhhh_aaaa_ssss_ssss_iiii_gggg_nnnn _:::: _pppp_uuuu_bbbb_llll_iiii_cccc _iiii_ssss_tttt_rrrr_eeee_aaaa_mmmm _{{{{
  85.                          _iiii_ssss_tttt_rrrr_eeee_aaaa_mmmm______wwww_iiii_tttt_hhhh_aaaa_ssss_ssss_iiii_gggg_nnnn_((((_))))_;;;;
  86.                _iiii_ssss_tttt_rrrr_eeee_aaaa_mmmm_&&&&  _oooo_pppp_eeee_rrrr_aaaa_tttt_oooo_rrrr_====_((((_iiii_ssss_tttt_rrrr_eeee_aaaa_mmmm_&&&&_))))_;;;;
  87.                _iiii_ssss_tttt_rrrr_eeee_aaaa_mmmm_&&&&  _oooo_pppp_eeee_rrrr_aaaa_tttt_oooo_rrrr_====_((((_ssss_tttt_rrrr_eeee_aaaa_mmmm_bbbb_uuuu_ffff_****_))))_;;;;
  88.      _}}}}_;;;;
  89.  
  90.      _eeee_xxxx_tttt_eeee_rrrr_nnnn _iiii_ssss_tttt_rrrr_eeee_aaaa_mmmm______wwww_iiii_tttt_hhhh_aaaa_ssss_ssss_iiii_gggg_nnnn _cccc_iiii_nnnn_;;;;
  91.  
  92.      _iiii_ssss_tttt_rrrr_eeee_aaaa_mmmm_&&&&  _wwww_ssss_((((_iiii_ssss_tttt_rrrr_eeee_aaaa_mmmm_&&&&_))))_;;;;
  93.      _iiii_oooo_ssss_&&&&      _dddd_eeee_cccc_((((_iiii_oooo_ssss_&&&&_)))) _;;;;
  94.      _iiii_oooo_ssss_&&&&      _hhhh_eeee_xxxx_((((_iiii_oooo_ssss_&&&&_)))) _;;;;
  95.      _iiii_oooo_ssss_&&&&      _oooo_cccc_tttt_((((_iiii_oooo_ssss_&&&&_)))) _;;;;
  96.  
  97. DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
  98.      _iiii_ssss_tttt_rrrr_eeee_aaaa_mmmms support interpretation of characters fetched from an associated
  99.      _ssss_tttt_rrrr_eeee_aaaa_mmmm_bbbb_uuuu_ffff.  These are commonly referred to as input or extraction
  100.      operations.  The _iiii_ssss_tttt_rrrr_eeee_aaaa_mmmm member functions and related functions are
  101.      described below.
  102.  
  103.      In the following descriptions assume that
  104.      - _i_n_s is an _iiii_ssss_tttt_rrrr_eeee_aaaa_mmmm.
  105.      - _i_n_s_w_a is an _iiii_ssss_tttt_rrrr_eeee_aaaa_mmmm______wwww_iiii_tttt_hhhh_aaaa_ssss_ssss_iiii_gggg_nnnn.
  106.      - _i_n_s_p is a _iiii_ssss_tttt_rrrr_eeee_aaaa_mmmm_****.
  107.      - _c is a _cccc_hhhh_aaaa_rrrr_&&&&
  108.      - _d_e_l_i_m is a _cccc_hhhh_aaaa_rrrr.
  109.      - _p_t_r is a _cccc_hhhh_aaaa_rrrr_**** or _uuuu_nnnn_ssss_iiii_gggg_nnnn_eeee_dddd _cccc_hhhh_aaaa_rrrr_****.
  110.      - _s_b is a _ssss_tttt_rrrr_eeee_aaaa_mmmm_bbbb_uuuu_ffff_&&&&.
  111.      - _i, _n, _l_e_n, _d, and _n_e_e_d are _iiii_nnnn_tttts.
  112.      - _p_o_s is a _ssss_tttt_rrrr_eeee_aaaa_mmmm_pppp_oooo_ssss.
  113.      - _o_f_f is a _ssss_tttt_rrrr_eeee_aaaa_mmmm_oooo_ffff_ffff.
  114.      - _d_i_r is a _ssss_eeee_eeee_kkkk______dddd_iiii_rrrr.
  115.      - _m_a_n_i_p is a function with type _iiii_ssss_tttt_rrrr_eeee_aaaa_mmmm_&&&& _((((_****_))))_((((_iiii_ssss_tttt_rrrr_eeee_aaaa_mmmm_&&&&_)))).
  116.  
  117.    CCCCoooonnnnssssttttrrrruuuuccccttttoooorrrrssss aaaannnndddd aaaassssssssiiiiggggnnnnmmmmeeeennnntttt::::
  118.           _iiii_ssss_tttt_rrrr_eeee_aaaa_mmmm_((((_s_b_))))
  119.                Initializes _iiii_oooo_ssss state variables and associates buffer _s_b with
  120.                the _iiii_ssss_tttt_rrrr_eeee_aaaa_mmmm..
  121.  
  122.           _iiii_ssss_tttt_rrrr_eeee_aaaa_mmmm______wwww_iiii_tttt_hhhh_aaaa_ssss_ssss_iiii_gggg_nnnn_((((_))))
  123.                Does no initialization.
  124.  
  125.  
  126.  
  127.  
  128.  
  129.                                                                         PPPPaaaaggggeeee 2222
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136. IIIISSSSTTTTRRRREEEEAAAAMMMM((((3333CCCC++++++++))))                                                    IIIISSSSTTTTRRRREEEEAAAAMMMM((((3333CCCC++++++++))))
  137.  
  138.  
  139.  
  140.           _i_n_s_w_a_====_s_b
  141.                Associates _s_b with _i_n_s_w_a and initializes the entire state of
  142.                _i_n_s_w_a.
  143.  
  144.           _i_n_s_w_a_====_i_n_s
  145.                Associates _i_n_s_----_>>>>_rrrr_dddd_bbbb_uuuu_ffff_((((_)))) with _i_n_s_w_a and initializes the entire
  146.                state of _i_n_s_w_a.
  147.  
  148.    IIIInnnnppppuuuutttt pppprrrreeeeffffiiiixxxx ffffuuuunnnnccccttttiiiioooonnnn::::
  149.           _i _==== _i_n_s_...._iiii_pppp_ffff_xxxx_((((_n_e_e_d_))))
  150.                If _i_n_s's error state is non-zero, returns zero immediately.  If
  151.                necessary (and if it is non-null), any _iiii_oooo_ssss tied to _i_n_s is
  152.                flushed (see the description _iiii_oooo_ssss_::::_::::_tttt_iiii_eeee_((((_)))) in _iiii_oooo_ssss(3C++)).
  153.                Flushing is considered necessary if either _n_e_e_d_====_====_0000 or if there
  154.                are fewer than _n_e_e_d characters immediately available.  If
  155.                _iiii_oooo_ssss_::::_::::_ssss_kkkk_iiii_pppp_wwww_ssss is set in _i_n_s_...._ffff_llll_aaaa_gggg_ssss_((((_)))) and _n_e_e_d is zero, then
  156.                leading whitespace characters are extracted from _i_n_s.  _iiii_pppp_ffff_xxxx_((((_))))
  157.                returns zero if an error occurs while skipping whitespace;
  158.                otherwise it returns non-zero.
  159.  
  160.           Formatted input functions call _iiii_pppp_ffff_xxxx_((((_0000_)))), while unformatted input
  161.           functions call _iiii_pppp_ffff_xxxx_((((_1111_)))); see below.
  162.  
  163.    FFFFoooorrrrmmmmaaaatttttttteeeedddd iiiinnnnppppuuuutttt ffffuuuunnnnccccttttiiiioooonnnnssss ((((eeeexxxxttttrrrraaaaccccttttoooorrrrssss))))::::
  164.           _i_n_s_>>>>_>>>>_x
  165.                Calls _iiii_pppp_ffff_xxxx_((((_0000_)))) and if that returns non-zero, extracts characters
  166.                from _i_n_s and converts them according to the type of _x.  It
  167.                stores the converted value in _x.  Errors are indicated by
  168.                setting the error state of _i_n_s.  _iiii_oooo_ssss_::::_::::_ffff_aaaa_iiii_llll_bbbb_iiii_tttt means that
  169.                characters in _i_n_s were not a representation of the required
  170.                type.  _iiii_oooo_ssss_::::_::::_bbbb_aaaa_dddd_bbbb_iiii_tttt indicates that attempts to extract
  171.                characters failed.  _i_n_s is always returned.
  172.  
  173.                The details of conversion depend on the values of _i_n_s's format
  174.                state flags and variables (see _iiii_oooo_ssss(3C++)) and the type of _x.
  175.                Except that extractions that use width reset it to 0, the
  176.                extraction operators do not change the value of _oooo_ssss_tttt_rrrr_eeee_aaaa_mmmm's
  177.                format state.  Extractors are defined for the following types,
  178.                with conversion rules as described below.
  179.  
  180.                _cccc_hhhh_aaaa_rrrr_****, _uuuu_nnnn_ssss_iiii_gggg_nnnn_eeee_dddd _cccc_hhhh_aaaa_rrrr_****
  181.                     Characters are stored in the array pointed at by _x until a
  182.                     whitespace character is found in _i_n_s.  The terminating
  183.                     whitespace is left in _i_n_s.  If _i_n_s_...._wwww_iiii_dddd_tttt_hhhh_((((_)))) is non-zero it
  184.                     is taken to be the size of the array, and no more than
  185.                     _i_n_s_...._wwww_iiii_dddd_tttt_hhhh_((((_))))_----_1111 characters are extracted.  A terminating
  186.                     null character (0) is always stored (even when nothing
  187.                     else is done because of _i_n_s's error status).  _i_n_s_...._wwww_iiii_dddd_tttt_hhhh_((((_))))
  188.                     is reset to 0.
  189.  
  190.  
  191.  
  192.  
  193.  
  194.  
  195.                                                                         PPPPaaaaggggeeee 3333
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202. IIIISSSSTTTTRRRREEEEAAAAMMMM((((3333CCCC++++++++))))                                                    IIIISSSSTTTTRRRREEEEAAAAMMMM((((3333CCCC++++++++))))
  203.  
  204.  
  205.  
  206.                _cccc_hhhh_aaaa_rrrr_&&&&, _uuuu_nnnn_ssss_iiii_gggg_nnnn_eeee_dddd _cccc_hhhh_aaaa_rrrr_&&&&
  207.                     A character is extracted and stored in _x.
  208.  
  209.                _ssss_hhhh_oooo_rrrr_tttt_&&&&, _uuuu_nnnn_ssss_iiii_gggg_nnnn_eeee_dddd _ssss_hhhh_oooo_rrrr_tttt_&&&&,
  210.                _iiii_nnnn_tttt_&&&&, _uuuu_nnnn_ssss_iiii_gggg_nnnn_eeee_dddd _iiii_nnnn_tttt_&&&&,
  211.                _llll_oooo_nnnn_gggg_&&&&, _uuuu_nnnn_ssss_iiii_gggg_nnnn_eeee_dddd _llll_oooo_nnnn_gggg_&&&&
  212.                     Characters are extracted and converted to an integral
  213.                     value according to the conversion specified in _i_n_s's
  214.                     format flags.  Converted characters are stored in _x.  The
  215.                     first character may be a sign (_++++ or _----).  After that, if
  216.                     _iiii_oooo_ssss_::::_::::_oooo_cccc_tttt, _iiii_oooo_ssss_::::_::::_dddd_eeee_cccc, or _iiii_oooo_ssss_::::_::::_hhhh_eeee_xxxx is set in _i_n_s_...._ffff_llll_aaaa_gggg_ssss_((((_)))), the
  217.                     conversion is octal, decimal, or hexadecimal,
  218.                     respectively.  Conversion is terminated by the first
  219.                     ``non-digit,'' which is left in _i_n_s.  Octal digits are the
  220.                     characters '0' to '7'.  Decimal digits are the octal
  221.                     digits plus '8' and '9'.  Hexadecimal digits are the
  222.                     decimal digits plus the letters 'a' through 'f' (in either
  223.                     upper or lower case).  If none of the conversion base
  224.                     format flags is set, then the number is interpreted
  225.                     according to C++ lexical conventions.  That is, if the
  226.                     first characters (after the optional sign) are _0000_xxxx or _0000_XXXX a
  227.                     hexadecimal conversion is performed on following
  228.                     hexadecimal digits.  Otherwise, if the first character is
  229.                     a _0000, an octal conversion is performed, and in all other
  230.                     cases a decimal conversion is performed.  _iiii_oooo_ssss_::::_::::_ffff_aaaa_iiii_llll_bbbb_iiii_tttt is
  231.                     set if there are no digits (not counting the _0000 in _0000_xxxx or
  232.                     _0000_XXXX) during hex conversion) available.
  233.  
  234.                _ffff_llll_oooo_aaaa_tttt_&&&&, _dddd_oooo_uuuu_bbbb_llll_eeee_&&&&
  235.                     Converts the characters according to C++ syntax for a
  236.                     float or double, and stores the result in _x.  _iiii_oooo_ssss_::::_::::_ffff_aaaa_iiii_llll_bbbb_iiii_tttt
  237.                     is set if there are no digits available in _i_n_s or if it
  238.                     does not begin with a well formed floating point number.
  239.  
  240.           The type and name (_oooo_pppp_eeee_rrrr_aaaa_tttt_oooo_rrrr_>>>>_>>>>) of the extraction operations are
  241.           chosen to give a convenient syntax for sequences of input
  242.           operations.  The operator overloading of C++ permits extraction
  243.           functions to be declared for user-defined classes.  These operations
  244.           can then be used with the same syntax as the member functions
  245.           described here.
  246.  
  247.           _i_n_s_>>>>_>>>>_s_b
  248.                If _iiii_oooo_ssss_...._iiii_pppp_ffff_xxxx_((((_0000_)))) returns non-zero, extracts characters from _iiii_oooo_ssss
  249.                and inserts them into _s_b.  Extraction stops when _EEEE_OOOO_FFFF is
  250.                reached.  Always returns _i_n_s.
  251.  
  252.    UUUUnnnnffffoooorrrrmmmmaaaatttttttteeeedddd iiiinnnnppppuuuutttt ffffuuuunnnnccccttttiiiioooonnnnssss::::
  253.      These functions call _iiii_pppp_ffff_xxxx_((((_1111_)))) and proceed only if it returns non-zero:
  254.  
  255.           _i_n_s_p_====_&&&&_i_n_s_...._gggg_eeee_tttt_((((_p_t_r_,,,,_l_e_n_,,,,_d_e_l_i_m_))))
  256.                Extracts characters and stores them in the byte array beginning
  257.                at _p_t_r and extending for _l_e_n bytes.  Extraction stops when
  258.  
  259.  
  260.  
  261.                                                                         PPPPaaaaggggeeee 4444
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268. IIIISSSSTTTTRRRREEEEAAAAMMMM((((3333CCCC++++++++))))                                                    IIIISSSSTTTTRRRREEEEAAAAMMMM((((3333CCCC++++++++))))
  269.  
  270.  
  271.  
  272.                _d_e_l_i_m is encountered (_d_e_l_i_m is left in _i_n_s and not stored),
  273.                when _i_n_s has no more characters, or when the array has only one
  274.                byte left.  _gggg_eeee_tttt always stores a terminating null, even if it
  275.                doesn't extract any characters from _i_n_s because of its error
  276.                status.  _iiii_oooo_ssss_::::_::::_ffff_aaaa_iiii_llll_bbbb_iiii_tttt is set only if _gggg_eeee_tttt encounters an end of
  277.                file before it stores any characters.
  278.  
  279.           _i_n_s_p_====_&&&&_i_n_s_...._gggg_eeee_tttt_((((_c_))))
  280.                Extracts a single character and stores it in _c.
  281.  
  282.           _i_n_s_p_====_&&&&_i_n_s_...._gggg_eeee_tttt_((((_s_b_,,,,_d_e_l_i_m_))))
  283.                Extracts characters from _i_n_s_...._rrrr_dddd_bbbb_uuuu_ffff_((((_)))) and stores them into _s_b.
  284.                It stops if it encounters end of file or if a store into _s_b
  285.                fails or if it encounters _d_e_l_i_m (which it leaves in _i_n_s).
  286.                _iiii_oooo_ssss_::::_::::_ffff_aaaa_iiii_llll_bbbb_iiii_tttt is set if it stops because the store into _s_b
  287.                fails.
  288.  
  289.           _i_====_i_n_s_...._gggg_eeee_tttt_((((_)))).
  290.                Extracts a character and returns it.  _i is _EEEE_OOOO_FFFF if extraction
  291.                encounters end of file.  _iiii_oooo_ssss_::::_::::_ffff_aaaa_iiii_llll_bbbb_iiii_tttt is never set.
  292.  
  293.           _i_n_s_p_====_&&&&_i_n_s_...._gggg_eeee_tttt_llll_iiii_nnnn_eeee_((((_p_t_r_,,,,_l_e_n_,,,,_d_e_l_i_m_))))
  294.                Does the same thing as _i_n_s_...._gggg_eeee_tttt_((((_p_t_r_,,,,_l_e_n_,,,,_d_e_l_i_m_)))) with the
  295.                exception that it extracts a terminating _d_e_l_i_m character from
  296.                _i_n_s.  In case _d_e_l_i_m occurs when exactly _l_e_n characters have
  297.                been extracted, termination is treated as being due to the
  298.                array being filled, and this _d_e_l_i_m is left in _i_n_s.
  299.  
  300.           _i_n_s_p_====_&&&&_i_n_s_...._iiii_gggg_nnnn_oooo_rrrr_eeee_((((_n_,,,,_d_))))
  301.                Extracts and throws away up to _n characters.  Extraction stops
  302.                prematurely if _d is extracted or end of file is reached.  If _d
  303.                is _EEEE_OOOO_FFFF it can never cause termination.
  304.  
  305.           _i_n_s_p_====_&&&&_i_n_s_...._rrrr_eeee_aaaa_dddd_((((_p_t_r_,,,,_n_))))
  306.                Extracts _n characters and stores them in the array beginning at
  307.                _p_t_r.  If end of file is reached before _n characters have been
  308.                extracted, _rrrr_eeee_aaaa_dddd stores whatever it can extract and sets
  309.                _iiii_oooo_ssss_::::_::::_ffff_aaaa_iiii_llll_bbbb_iiii_tttt.  The number of characters extracted can be
  310.                determined via _i_n_s_...._gggg_cccc_oooo_uuuu_nnnn_tttt_((((_)))).
  311.  
  312.    OOOOtttthhhheeeerrrr mmmmeeeemmmmbbbbeeeerrrrssss aaaarrrreeee::::
  313.           _i_====_i_n_s_...._gggg_cccc_oooo_uuuu_nnnn_tttt_((((_))))
  314.                Returns the number of characters extracted by the last
  315.                unformatted input function.  Formatted input functions may call
  316.                unformatted input functions and thereby reset this number.
  317.  
  318.           _i_====_i_n_s_...._pppp_eeee_eeee_kkkk_((((_))))
  319.                Begins by calling _i_n_s_...._iiii_pppp_ffff_xxxx_((((_1111_)))).  If that call returns zero or if
  320.                _i_n_s is at end of file, it returns _EEEE_OOOO_FFFF.  Otherwise it returns
  321.                the next character without extracting it.
  322.  
  323.  
  324.  
  325.  
  326.  
  327.                                                                         PPPPaaaaggggeeee 5555
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334. IIIISSSSTTTTRRRREEEEAAAAMMMM((((3333CCCC++++++++))))                                                    IIIISSSSTTTTRRRREEEEAAAAMMMM((((3333CCCC++++++++))))
  335.  
  336.  
  337.  
  338.           _i_n_s_p_====_&&&&_i_n_s_...._pppp_uuuu_tttt_bbbb_aaaa_cccc_kkkk_((((_c_))))
  339.                Attempts to back up _i_n_s_...._rrrr_dddd_bbbb_uuuu_ffff_((((_)))).  _c must be the character
  340.                before _i_n_s_...._rrrr_dddd_bbbb_uuuu_ffff_((((_))))'s get pointer.  (Unless other activity is
  341.                modifying _i_n_s_...._rrrr_dddd_bbbb_uuuu_ffff_((((_)))) this is the last character extracted from
  342.                _i_n_s.)  If it is not, the effect is undefined.  _pppp_uuuu_tttt_bbbb_aaaa_cccc_kkkk may fail
  343.                (and set the error state).  Although it is a member of _iiii_ssss_tttt_rrrr_eeee_aaaa_mmmm,
  344.                _pppp_uuuu_tttt_bbbb_aaaa_cccc_kkkk never extracts characters, so it does not call _i_p_f_x.
  345.                It will, however, return without doing anything if the error
  346.                state is non-zero.
  347.  
  348.           _i_====_&&&&_i_n_s_...._ssss_yyyy_nnnn_cccc_((((_))))
  349.                Establishes consistency between internal data structures and
  350.                the external source of characters.  Calls _i_n_s_...._rrrr_dddd_bbbb_uuuu_ffff_((((_))))_----_>>>>_ssss_yyyy_nnnn_cccc_((((_)))),
  351.                which is a virtual function, so the details depend on the
  352.                derived class.  Returns _EEEE_OOOO_FFFF to indicate errors.
  353.  
  354.           _i_n_s_>>>>_>>>>_mmmm_aaaa_nnnn_iiii_pppp
  355.                Equivalent to _mmmm_aaaa_nnnn_iiii_pppp_((((_i_n_s_)))).  Syntactically this looks like an
  356.                extractor operation, but semantically it does an arbitrary
  357.                operation rather than converting a sequence of characters and
  358.                storing the result in _mmmm_aaaa_nnnn_iiii_pppp.  A predefined manipulator, _w_s, is
  359.                described below.
  360.  
  361.    MMMMeeeemmmmbbbbeeeerrrr ffffuuuunnnnccccttttiiiioooonnnnssss rrrreeeellllaaaatttteeeedddd ttttoooo ppppoooossssiiiittttiiiioooonnnniiiinnnngggg::::
  362.           _i_n_s_p_====_&&&&_i_n_s_...._ssss_eeee_eeee_kkkk_gggg_((((_o_f_f_,,,,_d_i_r_))))
  363.                Repositions _i_n_s_...._rrrr_dddd_bbbb_uuuu_ffff_((((_))))'s get pointer.  See _ssss_bbbb_uuuu_ffff_...._pppp_uuuu_bbbb(3C++) for
  364.                a discussion of positioning.
  365.  
  366.           _i_n_s_p_====_&&&&_i_n_s_...._ssss_eeee_eeee_kkkk_gggg_((((_p_o_s_))))
  367.                Repositions _i_n_s_...._rrrr_dddd_bbbb_uuuu_ffff_((((_))))'s get pointer.  See _ssss_bbbb_uuuu_ffff_...._pppp_uuuu_bbbb(3C++) for
  368.                a discussion of positioning.
  369.  
  370.           _p_o_s_====_i_n_s_...._tttt_eeee_llll_llll_gggg_((((_))))
  371.                The current position of _iiii_oooo_ssss_...._rrrr_dddd_bbbb_uuuu_ffff_((((_))))'s get pointer.  See
  372.                _ssss_bbbb_uuuu_ffff_...._pppp_uuuu_bbbb(3C++) for a discussion of positioning.
  373.  
  374.    MMMMaaaannnniiiippppuuuullllaaaattttoooorrrr::::
  375.           _i_n_s_>>>>_>>>>_w_s
  376.                Extracts whitespace characters.
  377.  
  378.           _i_n_s_>>>>_>>>>_d_e_c
  379.                Sets the conversion base format flag to 10.  See _iiii_oooo_ssss(3C++).
  380.  
  381.           _i_n_s_>>>>_>>>>_h_e_x
  382.                Sets the conversion base format flag to 16.  See _iiii_oooo_ssss(3C++).
  383.  
  384.           _i_n_s_>>>>_>>>>_o_c_t
  385.                Sets the conversion base format flag to 8.  See _iiii_oooo_ssss(3C++).
  386.  
  387.  
  388.  
  389.  
  390.  
  391.  
  392.  
  393.                                                                         PPPPaaaaggggeeee 6666
  394.  
  395.  
  396.  
  397.  
  398.  
  399.  
  400. IIIISSSSTTTTRRRREEEEAAAAMMMM((((3333CCCC++++++++))))                                                    IIIISSSSTTTTRRRREEEEAAAAMMMM((((3333CCCC++++++++))))
  401.  
  402.  
  403.  
  404. CAVEATS
  405.      There is no overflow detection on conversion of integers. There should
  406.      be, and overflow should cause the error state to be set.
  407.  
  408. SSSSEEEEEEEE AAAALLLLSSSSOOOO
  409.      _iiii_oooo_ssss(3C++), _ssss_bbbb_uuuu_ffff_...._pppp_uuuu_bbbb(3C++), _mmmm_aaaa_nnnn_iiii_pppp(3C++)
  410.  
  411.  
  412.  
  413.  
  414.  
  415.  
  416.  
  417.  
  418.  
  419.  
  420.  
  421.  
  422.  
  423.  
  424.  
  425.  
  426.  
  427.  
  428.  
  429.  
  430.  
  431.  
  432.  
  433.  
  434.  
  435.  
  436.  
  437.  
  438.  
  439.  
  440.  
  441.  
  442.  
  443.  
  444.  
  445.  
  446.  
  447.  
  448.  
  449.  
  450.  
  451.  
  452.  
  453.  
  454.  
  455.  
  456.  
  457.  
  458.  
  459.                                                                         PPPPaaaaggggeeee 7777
  460.  
  461.  
  462.  
  463.